Bulk Operations একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা CouchDB-তে একযোগে একাধিক ডকুমেন্ট তৈরি, আপডেট বা মুছে ফেলার প্রক্রিয়া সহজ করে তোলে। এটি বিশেষভাবে বড় ডেটাসেট বা উচ্চ কার্যকারিতা সম্পন্ন অ্যাপ্লিকেশনের জন্য উপযুক্ত, যেখানে একাধিক ডকুমেন্ট একবারে প্রক্রিয়া করা দরকার।
CouchDB এ Bulk Operations পরিচালনা করার জন্য সাধারণত Bulk Documents API ব্যবহার করা হয়। এর মাধ্যমে একাধিক ডকুমেন্টের CRUD (Create, Read, Update, Delete) অপারেশন একযোগে করা যেতে পারে, যা সার্ভারের প্রতি রিকুয়েস্টের সংখ্যা কমিয়ে দেয় এবং পারফরম্যান্স উন্নত করতে সহায়ক।
CouchDB তে একাধিক নতুন ডকুমেন্ট একসাথে তৈরি করার জন্য Bulk Documents API ব্যবহার করা হয়। এখানে আপনি একাধিক ডকুমেন্টের JSON অবজেক্ট একত্রে পাঠাতে পারেন।
POST
রিকুয়েস্ট ব্যবহার করে আপনি একাধিক ডকুমেন্ট তৈরি করতে পারেন:
POST http://localhost:5984/your_database/_bulk_docs
{
"docs": [
{
"_id": "doc1",
"name": "John Doe",
"age": 30
},
{
"_id": "doc2",
"name": "Jane Smith",
"age": 25
},
{
"_id": "doc3",
"name": "Sam Green",
"age": 35
}
]
}
[
{
"id": "doc1",
"rev": "1-23456"
},
{
"id": "doc2",
"rev": "1-34567"
},
{
"id": "doc3",
"rev": "1-45678"
}
]
এই প্রক্রিয়ায়, CouchDB একযোগে সমস্ত ডকুমেন্ট তৈরি করে এবং তাদের _rev ফিল্ড সহ সাড়া পাঠায়।
CouchDB-তে বিদ্যমান ডকুমেন্ট আপডেট করতে হলে, আপনি _rev ফিল্ড সহ ডকুমেন্টটি পাঠাতে হবে। Bulk update অপারেশন একইভাবে Bulk Documents API ব্যবহার করে করা যায়।
POST
রিকুয়েস্ট ব্যবহার করে আপনি একাধিক ডকুমেন্ট আপডেট করতে পারেন:
POST http://localhost:5984/your_database/_bulk_docs
{
"docs": [
{
"_id": "doc1",
"_rev": "1-23456",
"name": "John Doe",
"age": 31
},
{
"_id": "doc2",
"_rev": "1-34567",
"name": "Jane Smith",
"age": 26
}
]
}
[
{
"id": "doc1",
"rev": "2-56789"
},
{
"id": "doc2",
"rev": "2-67890"
}
]
এই ক্ষেত্রে, আপনি যে ডকুমেন্টগুলিকে আপডেট করতে চান তাদের _rev ফিল্ড ব্যবহার করতে হবে। CouchDB নতুন _rev পাসপোর্টের সাথে সংশোধিত ডকুমেন্টগুলির সাড়া পাঠাবে।
একইভাবে, Bulk Documents API ব্যবহার করে একাধিক ডকুমেন্ট মুছে ফেলা যায়। ডকুমেন্ট মুছে ফেলার জন্য, আপনাকে _id এবং _rev সহ ডকুমেন্ট পাঠাতে হবে, যাতে CouchDB নিশ্চিত করতে পারে যে এটি সঠিক ডকুমেন্ট মুছে ফেলছে।
POST
রিকুয়েস্ট ব্যবহার করে আপনি একাধিক ডকুমেন্ট মুছে ফেলতে পারেন:
POST http://localhost:5984/your_database/_bulk_docs
{
"docs": [
{
"_id": "doc1",
"_rev": "2-56789",
"_deleted": true
},
{
"_id": "doc2",
"_rev": "2-67890",
"_deleted": true
}
]
}
[
{
"id": "doc1",
"rev": "3-78901"
},
{
"id": "doc2",
"rev": "3-89012"
}
]
এখানে, _deleted ফিল্ডকে true
সেট করা হয়েছে, যা CouchDB কে নির্দেশ দেয় যে ডকুমেন্টটি মুছে ফেলা উচিত।
যদি কোনো ডকুমেন্টের মধ্যে ভুল থাকে (যেমন: _rev মিসিং বা ভুল), তখন CouchDB একটি ত্রুটি রিপোর্ট করবে এবং সংশ্লিষ্ট ডকুমেন্টের জন্য error
অথবা reason
প্রদান করবে। উদাহরণস্বরূপ:
[
{
"id": "doc1",
"error": "conflict",
"reason": "Document update conflict"
},
{
"id": "doc2",
"rev": "3-89012"
}
]
এটি দেখায় যে doc1 ডকুমেন্টের আপডেট কনফ্লিক্ট হয়েছে, কিন্তু doc2 সফলভাবে আপডেট হয়েছে।
Bulk Operations CouchDB-তে একাধিক ডকুমেন্ট একযোগে তৈরি, আপডেট বা মুছে ফেলতে সাহায্য করে। এটি সার্ভারের লোড কমানোর পাশাপাশি পারফরম্যান্সও উন্নত করতে সহায়ক। এই ফিচারটি বড় আকারের অ্যাপ্লিকেশন বা ডেটাবেস সিস্টেমে ডেটা পরিচালনা সহজ করে তোলে।
common.read_more